package List;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class ListDemo1 {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("zhangsan");
        list.add("lisi");
        list.add("wangwu");
        list.add("zhangsan");
        System.out.println(list);
        list.add(1,"lose");
        System.out.println(list);
        System.out.println("list的长度是:"+list.size());
        final var remove = list.remove(1);
        System.out.println("被删除的元素："+remove);
        String s=list.set(0,"zhaoliu");
        System.out.println("被修改的元素："+s);
        System.out.println(list);
        System.out.println(list.get(0));
        System.out.println(list.indexOf(0));
        List<Integer> list2=new ArrayList<>();
        list2.add(111);
        list2.add(123);
        list2.add(133);
        list2.add(143);
        System.out.println(list2);
//        Integer.valueOf(123)手动装箱，便于删除元素，否则会当成索引删除
        list2.remove(Integer.valueOf(123));
        System.out.println(list2);
        for (int i = 0; i < list2.size(); i++) {
            Integer s1=list2.get(i);
            System.out.println(s1);
        }
        ListIterator<String> stringListIterator = list.listIterator();
        while(stringListIterator.hasNext()){
            String s2=stringListIterator.next();
            System.out.println(s2);
        }
//        正向遍历
        ListIterator<Integer> it2=list2.listIterator();
        while(it2.hasNext()){
            Integer i2=it2.next();
            System.out.println(i2);
        }
        System.out.println(">>>>>>>>>>>>>>>");
        System.out.println(list2);
        System.out.println(">>>>>>>>>>>>>>>");
//        逆向遍历


        while(it2.hasPrevious()){
            Integer s3=it2.previous();
            System.out.println(s3);
        }
        List<String> SongIt=new ArrayList<>();
        SongIt.add("忘情水");
        SongIt.add("向天再借500年");
        SongIt.add("心心相系");
        SongIt.add("流浪人");
        System.out.println(SongIt);
//        ListIterator特有的迭代器
        ListIterator<String> it3=SongIt.listIterator();
        while(it3.hasNext()){
            if("心心相系".equals(it3.next())){
//                SongIt.remove("心心相系")删除也可以，下面的List迭代器对象it3删除元素也可以;
                it3.remove();
                it3.add("itxuexi");

            }
        }
        System.out.println(SongIt);
    }
}
